With the emerging of 2.5G (GPRS) and the third generation (3G) (CDMA2000 and WCDMA) wireless technology, streaming high-fidelity audio over a wireless channel has become a reality, where the audio data stream includes a sequence of sample values that are converted to a pitch and volume to produce continuously varying sound. Internet Protocol (IP) based architecture is promising to provide the opportunity for next-generation wireless services such as voice, high-speed data, Internet access, and audio and video streaming on an all IP network. In GPRS and 3G, however, there are still residual bits errors in the decoder of an audio coder-decoder (codec) although a wireless network has good error control capability. As such, the transmission of audio data streams across wireless networks still remains a challenge due to the limited varying bandwidth and the time-varying error-prone environment, including packet losses and random bit errors. Therefore, it is desirable that an audio decoder will have a capability of handling random bit errors.
Considering the limited bandwidth in wireless networks, efficient compression techniques could be applied to the audio signals at the cost of the sensitivity to the transmission errors. Bit errors usually have severe adverse effects on the decompression of the received stream, and can even make the decoder crash if not handled properly. To cope with errors on wireless networks, error resilience (ER) techniques can be used. Error resilience techniques at the source de-coding level can detect and locate errors, support resynchronization, and prevent the loss of entire information. With the aide of error resilient tools, acceptable audio quality can be obtained at a lower bit error rate, like 10−5. But the bit error rate in the wireless channel can be much higher, which results in poorly reconstructed quality only with error resilience tools. Thus, to cope with errors on the wireless networks, techniques other than ER techniques, such as error protection techniques might also be useful to increase robust audio transmission.
The characteristics of audio and video are different. As such, the challenges of error resilience for video coding differ from that of audio coding. While there is a strong correlation between adjacent video frames that can be exploited to recover the data corrupted in the transmission, there is almost no correlation between adjacent audio frames in the time domain. Moreover, audio coding artifacts caused by corrupted frames are esthetically unsatisfactory for human ears. Accordingly, error resilient schemes for video coding cannot be directly ported to audio coding.
The Microsoft® Windows Media™ Audio (WMA) codec (coder—decoder), which is provided by Microsoft Corporation of Redmond, Wash., USA, is a high-quality audio codec optimized for both voice and music. The WMA codec uses low- to high-range bit rates and produces smaller files and encodes and decodes faster than earlier audio codecs. Files encoded with the WMA audio codec can be downloaded faster than comparable files, and can be stored in less space. As such, the WMA codec provides near-CD-quality sound at less of the bandwidth required by earlier codecs. The WMA codec is useful for a variety of mono and stereo audio formats for different network bandwidths using a WMA file. The WMA codec is designed to handle a plurality of types of audio content, from low-bandwidth 8-kilohertz (kHz) speech to 48-kHz stereo music. The WMA codec is resistant to degradation due to packet loss because it does not use interframe memory. As such, it has a tolerance that is desirable for use with streaming content. A WMA file, which typically has the “.wma” file name extension, is a special type of advanced streaming format (ASF) file for use with audio content encoded with the WMA codec. As seen in FIG. 1, the Windows Media audio file is made up of data packets, each of which has a packet header and a plurality of frames. Included in the packet header are a packet sequence number, a frame count number, and a left over bits number.
While the WMA codec provides the foregoing advances over earlier codecs, bit errors still can be a problematic for the decoder. Several approaches can be used to deal with error resilience for WMA streaming, including use of a Header Extension Code (HEC), using Reversible Variable Length Codes (RVLC), and using Data Partitioning. A HEC can be used to reduce the sensitivity of the most important information that the decoder needs to be able to decode the audio bitstream. To use the HEC, in each packet, an additional 1-bit field is introduced. If this bit is set, the important header information that describes the audio frame is repeated in the audio packet. In WMA, each frame is only correlated to the previous frame and is independent of other frames. Thus, HEC is of minimal use for error resiliency in that there is no such important header information that can be identified by the WMA decoder for each frame.
RVLCs are special variable length codes that can be used for decoding from both the forward and reverse directions using their properties of suffix and prefix. However, RVLCs require a significant amount of memory and can cause a long time delay. Therefore, it is not preferable to use RVLC in real-time decoding on mobile devices.
Data partitioning can be used to limit the error propagation between different data segments by partitioning the data. An audio bitstream is composed of several data segments, among which there are Constant Length Codes (CLC) and Variable Length Codes (VLC). The errors in the VLC may propagate into the CLC parts if no precautions are taken. In WMA, a data packet usually consists of a few frames. Each frame is composed of one or multiple sub-frames. Each sub-frame comprises a header and a payload. While the sub-frame header comprises many CLCs and possible two types of VLCs, the sub-frame payload consists of run-level VLCs and sign bits. These different data segments are interleaved together. When any of the data segments is discarded, the rest of the data segments are useless. Therefore, it is very difficult to apply data partitioning to WMA.
When a bit error is encountered by the decoder of the WMA codec, the decoder will either discard the entire data packet or just the remainder of data packet. It would be an advance in the art to provide an error resilient audio coding technique to address these problematic errors. Consequently, there is a need for improved methods, computer-readable medium, data structure, and systems that can provide such a capability.